home *** CD-ROM | disk | FTP | other *** search
-
- /* @(#)CHANGES 1.29 91/11/13
- *
- * Copyright (C) 1990, 1991 - Rich Burridge & Yves Gallot.
- * All rights reserved.
- *
- * Permission is granted to copy this source, for redistribution
- * in source form only, provided the news headers in "substantially
- * unaltered format" are retained, the introductory messages are not
- * removed, and no monies are exchanged.
- *
- * Permission is also granted to copy this source, without the
- * news headers, for the purposes of making an executable copy by
- * means of compilation, provided that such copy will not be used
- * for the purposes of competition in any othello tournaments, without
- * prior permission from the authors.
- *
- * No responsibility is taken for any errors on inaccuracies inherent
- * either to the comments or the code of this program, but if reported
- * (see README file), then an attempt will be made to fix them.
- */
-
- Reve v1.3 change history.
- =========================
-
- v1.3 - patchlevel 1. 13th November 1991.
-
- * From Norbert Jung <jung@dia.informatik.uni-stuttgart.de>
- Need to include <ctype.h> in get.c for toupper() and tolower().
-
- * From Brett Carver <brett@hpnmd.sr.hp.com>
- Various small changes to get reve V1.3 to compile on HP machines.
-
- * From Brett Carver <brett@hpnmd.sr.hp.com>
- From Norbert Jung <jung@dia.informatik.uni-stuttgart.de>
- If I am forced to pass, the color is nevertheless changed and the
- computer plays with the wrong color.
-
- * From Valerie Haecky <vmh@Eng.Sun.COM>
- Display the time left for the user[s] and computer. There is an
- option on the property sheet that enables clock timers. New -clock
- command line option and reve.showClocks X resource.
-
- v1.3 - patchlevel 0. 8th November 1991.
-
- * The XView version is now generated from a devGuide .G file. Some
- changes to the GUI.
-
- * The images and cursors have been converted to the portable XBM
- format. A routine has been added to the SunView version to read
- the images and cursors in this format.
-
- * All versions of reve can now play across the network. There is a
- "-opponent user@host" command line argument, and there is an
- in.reved daemon (almost identical to the BSD talk daemon), which
- establishs the connection. See the README file for details of how
- to install the in.reved daemon.
-
- Removed the "-black display" and "-white display" command line
- options, and the -c command line option. Manuals pages have been
- updated.
-
- * Removed all references to the color reve icon. All graphics
- versions (even the color ones) now use the monochrome reve icon.
-
- * The X11 driver no longer tries to handle two screens.
-
- * The SunView version now terminates correctly if quit via the
- pull-down frame menu.
-
- * Divided the TODO file into two sections; known problems and
- possible enhancements.
-
-
- Reve v1.2 change history.
- =========================
-
- v1.2 - patchlevel 9. 22nd July 1991.
-
- * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
- You've updated the Makefile for the -DNOGETDTAB flag, but didn't
- do the same for the Imakefile. HP-UX 7.0 and 8.0 needs this flag
- set to compile OK.
-
- * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
- I couldn't resize the main reve board to fill the whole screen
- (1280 by 1024 colour). There appears to be a hard-coded limit to
- the size of the board.
-
- * Ran the Xlib version through Saber-C and fixed up the inconsistencies.
-
- * The Xlib version of reve now correctly reads the -display <display>
- command line option, to determine which display to initially open
- to get X resource preferences. This wasn't a problem when you were
- displaying reve on the same screen as the server was running on, but
- was a problem for X terminals.
-
- * Implemented the "two screens on two machines" version for the Xlib
- interface. If it's not your turn, then the hourglass cursor will be
- turned on, and if you attempt to do anything, you get the message,
- "It's not your turn". The "Computer plays:", "Difficulty:" and "Set
- search depth:" options are ignored when in two player mode; the other
- options on the property sheet should hopefully be just applicable to
- the local screen. Note the one known remaining problem, which is
- described near the beginning of the TODO file.
-
- v1.2 - patchlevel 8. 1st July 1991.
-
- * From Michael Glad <glad@daimi.aau.dk>
- As a possible alternative solution to the getdtablesize() problem,
- perhaps there should be a 'GETDTABLESIZEMISSING' clause in the
- makefiles.
-
- * Reve has been ported to Sun's SVR4 development platform. The X11,
- XView and tty versions all work. A list of the Makefile definitions
- that need to be uncommented is included in the example section of
- the README file.
-
- * Compiled reve with an ANSI C compiler, fixing up any discrepancies.
-
- * Added in ANSI C function prototypes for each reve routine.
-
- * Added a paragraph to the README file, to describe the anonymous ftp
- sites now available for reve.
-
- * From Martin Boyer <gamin@ireq-robot.hydro.qc.ca>
-
- - The README file has been modified to give the patchlevel as part
- of the version number, and the date adjusted accordingly.
-
- - Yves Gallot no longer works at CERN. The README file and the manual
- pages have been adjusted to reflect that he is currently has no
- email address.
-
- - Fixed up the Makefile.dist to correctly shar up the fifteenth part
- of the reve distribution.
-
- v1.2 - patchlevel 7. 25th March 1991.
-
- * From Andreas Zins <zins@forwiss.uni-erlangen.de>
- From Michael Glad <glad@daimi.aau.dk>
- From Brett Carver <brett@hpsrbkc.hp.com>
- From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
- The routine raise() is already defined under HP_UX and Ultrix.
- All occurances of raise() in the reve program have been replaced
- with raise_reve().
-
- * The raise_reve() routine hadn't been written for the SunView version;
- it was just a stub. Minor nit really, as there is currently no way of
- calling it.
-
- * From Brett Carver <brett@hpsrbkc.hp.com>
- Addition Makefile sample configuration for the README file.
-
- v1.2 - patchlevel 6. 20th March 1991.
-
- * From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
- The "moves?" and "suggest" symbols weren't being displayed or
- toggled correctly on monochrome screens.
-
- * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
- "make install" compiles reve_proc, which has a reference to the
- BSD-only index routine. I did a dirty fix in the Imakefile to get
- round this:
-
- DEFINES = $(CDEFS) -DX11 -Dindex=strchr
-
- I suspect that some #ifdef check for System V should be in there
- somewhere.
-
- * From Michael Glad <glad@daimi.aau.dk>
- HP-UX misses the 'index' function. I believe there ought to be a
- 'NOINDEX' clause in the Imakefile as in the ordinary Makefile.dist.
-
- * From Robert Cohen <robert@anucsd.anu.oz.au>
- It would be nice to be able to close down (iconise) the reve window
- while it was thinking and do something else. Then know when it was
- done so you could make your move. So an option to choose between it
- doing nothing on move or suggestion completion, beeping on completion,
- or autoraising on completion would be nice. It should probably also
- do something to the icon although that isnt sufficient by itself as
- not every one uses the icons.
-
- [I've added three new X resources:
-
- reve.iconiseForOpponentMove: false
- reve.bellAfterOpponentMove: false
- reve.raiseAfterOpponentMove: false
-
- combinations of these three should give everything that's desired.
- Manual pages and Reve.ad updated - Rich.]
-
- * From Michael Glad <glad@daimi.aau.dk>
- Reve_proc has a sad tendency to coredump. This makes 'reve' enter
- some infinite loop of read system calls making my kernel eat 90% of
- the CPU time. Some check might be missing somewhere.
-
- As far as I can figure out, the crash is provoked when the alarm
- signal in rev_ip.c goes off. This causes a longjmp around line #107.
- Unfortunately, the routine calling setjmp (play_reve) has not taken
- any provision to protect its local variables from being clobbered
- upon return from setjmp. Code relying upon set/long jmp to preserve
- any local variable must be considered nonportable. Using adb I've
- traced the crashed to a index violation in line 276:
-
- cpk[k] = cpk2[k] ;
-
- * From Brett K. Carver <brett@hpsrbkc.hp.com>
- Perhaps some recommended settings for various computers, or a bit
- more help in determining how to set the makefile stuff would help.
-
- [So far I only have settings for a Sun 4/65 and an HP Series 9000
- model 3[67]0 - Rich.]
-
- * From Michael Glad <glad@daimi.aau.dk>
- Changes to the Makefile.dist and Imakefile files to specify where
- the reve_proc program can be found. There is also a new command line
- option, -r <reve_pathname>, to allow this to be overridden at run
- time. The manual pages have been updated to reflect these changes.
-
- v1.2 - patchlevel 5. 14th March 1991.
-
- * From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
- In procs.c is in do_suggest the parameter 'player' is declared in
- the routines arguments and internal to the routine.
-
- * From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
- Choose 'Computer plays black' in the property sheet.
- Computer plays d-3. Put a white stone on c-3.
- Computer puts a black stone on c-4 AND THEN ON f-5 (!!!).
-
- * From Brett Carver <brett@hpsrbkc.hp.com>
- I'm playing a game, and it's saying the computer is forced to pass
- when I can clearly see moves.
-
- v1.2 - patchlevel 4. 13th March 1991.
-
- * From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
- - a typo in items.c, which corrects board labling.
- - a #include needs to be added in trans/trans.c for <ctype.h>
-
- * In order to try to fix up the display of stones on a board that has
- been resized, the second XSetFunction() call in make_pieces() in
- x11.c has been changed to use GXset.
-
- * Changed the symbols displayed for legal moves and suggest. This is
- to produce a consistent interface for mono and color. Two new image
- files have been created:
-
- images/move8.icon
- images/suggest8.icon
-
- I'm not very happy with the images, but they can easily be improved
- without affecting the rest of the program.
-
- The Makefile.dist, images.h, MANIFEST and FILES files have been
- updated, plus the routines that display legal moves and suggestions.
-
- * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
- There is a slight inconsistency in the display of the legal moves and
- the suggested move:
-
- A click on "Moves ?" results in Addition of "+"'s to show legal
- moves followed by...
- A click on "Suggest" results in Addition of a "X" on top of one
- of the "+"'s to show suggested move
- followed by...
- A click on "Moves ?" results in ALL "+"'s AND "X"'s removed from
- the display.
-
- I feel that:
- 1) The second click of the "Moves ?" button should leave the "X"
- intact and, failing that,
- 2) The "Suggest" button should toggle the "X" on and off, since a
- second click on that just recomputes the same suggested move
- anyway.
-
- * From Soren Hein <shein@ferdowsi.berkeley.edu>
- "moves?" could show, within each circle, how many stones that move
- would conquer.
-
- v1.2 - patchlevel 3. 19th February 1991.
-
- * Added missing X resource entries to the Reve.ad file, and the manual
- pages.
-
- * From Brett K. Carver <brett@hpsrbkc.hp.com>
- You allow the stone colors to be changed (I like red and blue), but
- the control panel refers to players 'white' and 'black'. It would be
- nice if they used the color names specified so the players would
- match the stones.
-
- [Rather then use the color name, which could be something like
- firebrick red, I've added in a couple more X resources:
-
- reve.whiteStoneName:
- reve.blackStoneName:
-
- to allow you to specify alternate strings than Black or White].
-
- * The help text was being drawn in the normal font, not the help font.
-
- * From Thomas K. Bischoff <bisc@zellweger.ch>
- When clicking on a illegal square, display the legal squares like the
- Moves? button does. So you don't have to move the mouse to the control
- panel. You could even discard the moves? button.
- Idea from the "Smart Game Board" of Anders Kierulf.
-
- [I have put this in as a new toggle option on the property sheet.
- There is also, yet another X resource:
-
- reve.showLegalMoves:
-
- which can be used to initialise this option].
-
- * From Thomas K. Bischoff <bisc@zellweger.ch>
- Various modification to the trans program and it's integration into
- the X11, SunView and XView versions:
-
- - had to make some patches to makefiles to make them work.
-
- - changed trans to act as filter which reads from standard input
- and writes to standard output as default.
-
- - created a print button which calls trans to print the game.
-
- - added another X resource:
-
- reve.printCommand:
-
- which allows you to specify an alternate print command.
-
- - the manual pages have been updated.
-
- v1.2 - patchlevel 2. 18th February 1991.
-
- * The make_pieces() routines in x11.c and xview.c have been modified
- to clear the black and white piece image areas in a slightly
- different way. Hopefully this fixes up the problems seen on HP-UX
- systems.
-
- * From Valerie Haecky (vmh@Eng.Sun.COM)
- Added in the ability to print a transcript of a reve game to a
- PostScript printer. This is currently a standalone utility in the
- trans directory, but will be directly interfaced to a reve button
- in the graphical versions of reve, in a future version.
-
- * From Robert Cohen <robert@anucsd.anu.edu.au>
- Small patch to shut up the optimiser on HP-UX systems, which
- complains about variables being un-initialised.
-
- v1.2 - patchlevel 1. 11th February 1991.
-
- * From Brett K. Carver <brett@hpnmd.hp.com>
- Needed #include <signal.h> in x11.c
-
- * From Brett K. Carver <brett@hpnmd.hp.com>
- The XSetWMProtocols call is not available with X11 R3. These have
- now been surronded with #ifndef X11R3 definitions.
-
- * From Mike Wexler <mikew@neptune.fx.com>
- The distributed Imakefile didn't work.
-
- * From Thomas K. Bischoff <bisc@zellweger.ch>
- The version number in the README file is wrong.
-
- * From Thomas K. Bischoff <bisc@zellweger.ch>
- The Load button with the XView version saves a game. This has now
- been changed to use XV_KEY_DATA.
-
- * From Martin Boyer <gamin@ireq-robot.hydro.qc.ca>
- From Thomas K. Bischoff <bisc@zellweger.ch
- After a game has been loaded, there needs to be a check to see if
- the next person can move. If they can't, and the opponent is the
- computer, then the computer must make a "move".
-
- * From Martin Boyer <gamin@ireq-robot.hydro.qc.ca>
- From Thomas K. Bischoff <bisc@zellweger.ch>
- From Valerie Haecky <vmh@Eng.Sun.COM>
- The program can hang if one player is forced to pass, and the
- opponent is the computer.
-
- * From Thomas K. Bischoff <bisc@zellweger.ch>
- From Valerie Haecky <vmh@Eng.Sun.COM>
- With the XView version, the game board icon wasn't being set
- correctly.
-
- * Under Open Windows, the InputHint needed to be given to the olwm
- window for the control panel, to allow the keyboard to be used to
- enter a load/save file name.
-
- * With the XView version, if the computer is making a move (or a
- suggestion), and there is an event other than a repaint event, then
- the bell is no longer sounded, it just displays the message "It's
- not your turn". This needs to be improved. There will be certain
- actions you can do while the computer is making a move.
-
- * Added sections into the event handling routines for the tty, x11
- and sunview drivers, to better handle events when the computer is
- making a move.
-
- * Setting the difficulty with the tty version caused a core dump
- because some of the pseudo items dimensions had not been setup.
-
- * Doing a ^L to redraw the screen with the tty version didn't work.
-
- * The -debug and -log options weren't working. These flags are now
- passed across to the reve_proc program. Debug messages are now
- written out to a file called reve.debug.
-
- * Selection "computer plays neither" with the X11 version caused the
- program to core dump.
-
- * Setting a certain cursor, will not set it for all visible windows.
-
- * Redo was incorrect for situations where one player had to pass.
-
- * From Thomas K. Bischoff <bisc@zellweger.ch>
- With the X11 version, only the board window could be iconified. The
- control pane stayed open.
-
- * From Michael Glad <glad@daimi.aau.dk>
- Removed the '#ifndef X11' code around the NOINDEX definition in
- reve.h.
-
- * From Michael Glad <glad@daimi.aau.dk>
- Problems with getdtablesize() under HP-UX.
- I've using the stdio-defined constant _NFILE instead of the call
- in makemove.c.
-
- * From Michael Glad <glad@daimi.aau.dk>
- Reve should check the return value of XOpenDisplay() in x11.c. It
- core dumps if access to the server is denied.
-
- v1.2 - patchlevel 0. 5th February 1991.
-
- * From Martin Boyer <gamin%ireq-robot.UUCP@Larry.McRCIM.McGill.EDU>
- I found a few bugs with the SunView version of reve, at patchlevel 7.
- They all have to do with the color handling.
-
- 1. The color array used to set the colormap segment should not be an
- array of integers, but rather an array of unsigned characters
- (main.c and sunview.c).
-
- 2. Sunview doesn't allow the first and last entries of the colormap to
- be equal (i.e. foreground and background colors must be different)
- (color.h).
-
- 3. The colormap segment should be a power of two (by extending it from
- 10 to 16, this also solves 2. above) (color.h).
-
- 4. The props and help frames should have the same colormap as the main
- frame, in order to display text correctly (sunview.c).
-
- 5. The help frame should be created before the colors are loaded, in
- order to apply 4. above (main.c).
-
- * From robert@anucsd.anu.edu.au (Robert Cohen)
- While analysing the tree search code for reve (in rev_ip.c) and
- reading the literature on the subject, preparatory to parallelising
- it I had some ideas for improving the serial search. I havent changed
- the board evaluation function or anything like that, just improved the
- tree pruning so it visits less useless positions. One of the
- techniques came from the article "parallel search of strongly ordered
- game trees" in December 82 ACM computing surveys. This gives a good
- overview of game tree search techniques both serial and parallel.
-
- Anyway I have prepared a number of patches incorporparating these that
- speed up the search reasonably considerably. Something like 20% less
- nodes visited to reach a given depth. Practically speaking at a given
- difficulty level it searches usually 1 and sometimes 2 ply deeper.
-
- * Set the stdout debug printing in the new rev_ip.c, to be displayed
- only if you use the -D command line option. This needs to be improved.
-
- * Further work on the X11 graphics version:
- - Separated the control panel from the game board.
- - The game board is now totally resizable. There is a minimum size
- of 200x200.
- - Condensed Creve.icon to half the size, and adjusted the routine
- that turns this into the color reve icon, so that it can read the
- condensed format.
-
- * Adjusted the SunView driver so that the control panel is separate
- from the game board.
-
- * Adjusted the XView version. The control panel is now separate from
- the games board, and the games board is resizable.
-
- * Adjusted the tty version to work with the new code.
-
- * All four versions now run the reve computer strategy as a separate
- process that gets initially forked off. This now requires the
- select system call.
-
- * Removed the undocumented -D (debug) command line option, and replaced
- it with:
- -debug - for printing debug messages to stdout.
- -xdebug - for debugging the X11 graphics driver (synchronous mode).
-
- * Created a new file called Reve.ad which gives all the X resource
- application defaults for reve.
-
- * Added new X resources:
- - reve.boardSize: which takes an integer value for the initial size
- of the reve game board.
- - reve.boardFont: which takes the name of a font to use to display
- the numbers and letters on the game board.
-
- * From Robert Cohen <robert@anucsd.anu.edu.au>
- The save game button does not work properly in the X11 version. Both
- the load and save buttons seem to end up calling the routine
- load_game.
-
- * From Robert Cohen <robert@anucsd.anu.edu.au>
- One problem I noticed for example in the present version is that
- there was no one terribly clear exit point.
-
- [The routine destroy_frame() should always be called during exiting.
- This routine is in the individual graphics files - Rich.]
-
- * From Norbert Jung <jung@dia.informatik.uni-stuttgart.de>
- If I use xreve (compiled on a SUN4) together with a DECstation 2100 as
- X11-display, the bytes of the images get flipped vertically so that a
- white piece looks like this:
-
- ...........oooo..........
- .......ooo......ooo......
- ...o......o....o......o..
- ....o................o...
- .....o..............o....
- .....o..............o....
- .....o..............o....
- .....o..............o....
- ....o................o...
- ...o......o....o......o..
- .......ooo......ooo......
- ...........oooo..........
-